package com.hjjt.cameraplugin

/**
 *
 * @ProjectName:    PluginDemo
 * @Package:        com.hjjt.cameralib.config
 * @ClassName:      CameraEnginConfig
 * @Description:
 * @Author:         孙浩
 * @CreateDate:     2022/5/31 15:41
 */
 class CameraEngineConfig {

    enum class CameraEngineType {
        CLOUD_WALK
    }

    /**
     * 打开方式枚举
     *
     * @constructor Create empty constructor for open mode
     */
    enum class OpenMode {
        //云从
        CLOUD_WALK_OPEN_MODE_UVC,//libUVC 方式打开
        CLOUD_WALK_OPEN_MODE_V4L2 //V4L2 方式打开
    }

    /**
     * 检测方式枚举
     */

    enum class LiveMode {
        //云从
        CLOUD_WALK_LIVE_MODE_AUTO, //自动
        CLOUD_WALK_LIVE_MODE_NIR, //红外双目
        CLOUD_WALK_LIVE_MODE_STR, //结构光
        CLOUD_WALK_LIVE_MODE_ACT, //动作活体
    }

    enum class DetectType {
        //云从
        CLOUD_WALK_DEC_TYPE_FACE, //人脸检测
        CLOUD_WALK_DEC_TYPE_LIVENESS,//活体检测
        CLOUD_WALK_DEC_TYPE_LIVENESS_CONTINUE,//连续活体检测
    }

    enum class CameraType {
        //云从
        CLOUD_WALK_OPEN_ALL,  //全部
        CLOUD_WALK_OPEN_VIS,  //可见光模组
        CLOUD_WALK_OPEN_NIS,  //红外/深度模组
    }

    /**
     * 数据类型转换枚举参数.
     */
    enum class FormatDataType {
        RGB888,
        YUV420,
        GRAY8,
        GRAY16,
        GRAY16_8
    }

    /**
     * 视频流编码格式.
     */
    enum class FormatStreamType {
        FORMAT_UNKNOWN,
        FORMAT_RGB888,
        FORMAT_MJPEG,
        FORMAT_YUY2,
        FORMAT_H264,
        FORMAT_H265,
        FORMAT_GRAY,
        FORMAT_RGB888_GRAY16,
        FORMAT_GRAY8_16,
    }

    enum class Angle {
        ANGLE_0,
        ANGLE_90,
        ANGLE_180,
        ANGLE_270,
    }

    /**
     * 相机状态.
     */
    enum class CameraStatus {
        STATUS_UNKNOWN,     //初始化状态
        STATUS_OPENED,      //已创建并连接
        STATUS_FORMATSET,   //已设置出流格式
        STATUS_STREAMON,    //出流中
        STATUS_CLOSED,      //已关闭并销毁
        STATUS_LOST,        //失联
    }

    /**
     * 照相格式.
     */
    enum class CaptureImageFormat{
        FORMAT_RAW,
        FORMAT_JPG,
        FORMAT_PNG,
        FORMAT_BMP,
    }

    /**
     * 检测图像枚举.
     */
    enum class LiveImageType{
        TYPE_FULL,  //全景图
        TYPE_FACE   //人像照
    }

}